سفارش تبلیغ
صبا ویژن
آشنایی با Firewall (بخش اول) - آموزش 11




هر کس ادعا کند که به انتهای دانش رسیده است، نهایت نادانی خود را آشکارساخته است . [امام علی علیه السلام] پارسی بلاگ، پیشرفته ترین سیستم مدیریت وبلاگ
اوقات شرعی
کل بازدیدها:31753 .:. بازدید امروز:49
موضوعات وبلاگ

لینک به لوگوی من
آشنایی با Firewall (بخش اول) - آموزش 11

دوستان من

جستجو در متن وبلاگ

جستجو:

اشتراک در خبرنامه
 

آرشیو

آهنگ وبلاگ

وضعیت من در یاهو
  • آشنایی با Firewall (بخش اول) نویسنده: مرتضی 11
    دوشنبه 85/1/28 ساعت 8:0 صبح
    منبع : http://www.meta-guard.com

    تعریف دیواره‌های آتش

    دیواره‌های آتش یکی از مؤثرترین و مهمترین روشهای پیاده سازی "مصونیت شبکه" هستند و قادرند تا حد زیادی از دسترسی غیر مجاز دنیای بیرون به منابع داخلی جلوگیری کنند.دیواره‌های آتش، مانند خندق‌های دور قلعه‌های دوران قرون وسطی عمل می‌کنند. شکل 1 یکی از این قلعه‌ها را نشان می‌دهد. خندق دور قلعه باعث می‌شود نفوذ به قلعه مشکل باشد.

    انجمن Network Computer Security Association) NCSA) تعریف زیر را از دیواره‌های آتش ارائه داده است."دیواره آتش یک سیستم یا ترکیبی از چندین سیستم است که یک سری محدودیت را بین دو یا چند شبکه اعمال می‌کند."در واقع یک دیواره آتش با محدودکردن دسترسی بین دو شبکه سعی می‌کند یکی را از دیگری محافظت کند. عموماً دیواره‌های آتش به منظور محافظت شبکه خصوصی ‌که به یک شبکه عمومی یا مشترک متصل است به کار گرفته می‌شوند. دیواره‌های آتش یک نقطه محدود کننده‌‌ را بین دو شبکه ایجاد می‌کند.

    عملکرد دیواره‌های آتش را می‌توان در سه جمله خلاصه کرد:

    - آنها افراد را موقع ورود در یک نقطه کاملاً کنترل شده محدود می‌سازد.

    - آنها از نزدیک شدن خرابکاران به منابع داخلی جلوگیری می‌کنند.

    - آنها افراد را موقع خروج در یک نقطه کاملاً کنترل شده محدود می‌سازند.

    در واقع این نقطه کاملاً کنترل شده در مثال قلعه‌های قرون وسطایی همان پل متحرکی است که تنها در مواقع ورود و خروج افراد مشخص بر روی خندق قرار می‌گیرد و در دیگر موارد بسته است و در نقش درب قلعه عمل می‌کند. دیواره آتش اغلب در نقطه‌ای ‌که شبکه ‌داخلی به شبکه خارجی متصل است قرار داده می‌شود (شکل 2). تمام ترافیکی که از سمت شبکه خارجی به شبکه داخلی وارد می‌‌شود و یا از شبکه داخلی به سمت شبکه خارجی، خارج می‌‌شود از دیواره آتش عبور می‌کند، به همین علت دیواره آتش فرصت و موقعیت مناسبی را داراست که تشخیص دهد آیا ترافیک عبوری مورد پذیرش هست یا خیر. اینکه چه ترافیکی مورد پذیرش هست به "سیاست امنیتی" (Security Policy)شبکه باز می‌گردد. سیاستهای امنیتی تعیین می‌کنند که چه نوع ترافیکهایی مجوز ورود و یا خروج را دارا هستند.

    می‌توان گفت یک دیواره آتش:

    - یک جداساز است.

    - یک محدودساز (Restrictor) است.

    - یک آنالیزکننده (Analyzer) است.

    یک دیواره آتش ممکن است:

    - مسیریابی با چند لیست کنترل دسترسی باشد.

    - نرم افزاری که روی یک PC یا یک سیستم Unix اجرا می شود، باشد.

    - یک جعبه سخت افزاری اختصاصی باشد.

    انواع پیچیده تر دیواره های آتش به صورت ترکیبی از چندین سیستم و راه حلهای Multi-computer و Multi-router پیاده سازی می‌شوند. شبکه های مختلف بسته به نیازهای امنیتی مختلف و هزینه ای که برای تأمین امنیت در نظر گرفته اند از دیواره‌های آتش مختلف و روشهای پیاده سازی مختلف آنها استفاده می‌کنند.

    دیواره‌های آتش اگر چه ‌که از بروز مشکلات مختلف برای شبکه داخلی جلوگیری می‌کنند اما بدون اشکال و عیب نیستند. در مثال ذکر شده، افراد ماهرتر قادر خواهند بود از خندق با شنا عبور کنند و در یک فرصت مناسب هنگامی که پل باز است با لباس مبدل به قلعه وارد شوند. سؤال اینجاست که با وجود این اشکالات چرا دیواره‌های آتش مورد استفاده قرار می‌گیرند؟ در پاسخ باید گفت درست است که در حالات خاصی دیواره آتش نفوذ پذیر است و خرابکاران قادرند از آن عبور کنند، اما با این حال این ابزار از عبور بسیاری از خرابکاران جلوگیری می‌کند و موثرترین ابزار در کنترل دسترسی به شبکه به حساب می‌آید. در صورتی که هیچ خندقی وجود نداشته باشد ورود افراد غیر مجاز به قلعه بسیار آسانتر خواهد بود و آیا چون در حالات خاصی، افراد خاص ممکن است از خندق عبور کنند، هیچ خندقی وجود نداشته باشد؟

    در هر حال یک دیواره آتش قادر است در جهت بالا رفتن سطح امنیتی شبکه اقدامات مفیدی را انجام دهد. در ادامه مواردی که یک دیواره آتش قادر است انجام دهد و به امنیت شبکه کمک کند را مورد بررسی قرار می‌دهیم.

    توانایی‌های دیواره‌های آتش
    در این بخش توانایی‌های دیواره‌های آتش را مورد بررسی قرار می‌دهیم.

    یک دیواره آتش می‌تواند اجرای تصمیمات امنیتی را در یک نقطه متمرکزکند: همانطورکه‌گفته شد، دیواره آتش یک نقطه محدود کننده بین دو شبکه است. تمام ترافیک به داخل و از خارج باید از این نقطه باریک عبورکند و راه دیگری برای عبور ترافیک وجود ندارد. بدین ترتیب دیواره آتش قابلیت اعمال کنترل شدیدی را دارا خواهد بود و می‌تواند با اعمال ابزار مختلف تأمین‌کننده امنیت در این نقطه سطح قابل قبولی از امنیت را تضمین کند. در واقع چون همه چیز در یک کانال ارتباطی قابل کنترل است می‌توان تصمیمات مختلفی را در ارتباط با امنیت شبکه گرفت و به اجرا در آوردن آنها را در یک نقطه متمرکز ساخت.

    یک دیواره آتش می‌تواند سیاست امنیتی شبکه را به اجرا در آورد: می‌دانیم سرویسهای مختلفی در شبکه‌ها وجود دارند و با گسترش اینترنت تنوع و تعداد آنها بسیار افزایش یافته است. اغلب این سرویسها ناامن هستند و هنگام استفاده و ارائه آنها باید دقت کرد. سیاست امنیتی شبکه‌های مختلف تعیین می‌کند که چه سرویسهایی در شبکه ارائه می‌شود و چه افرادی مجازند از این سرویسها استفاده کنند. دیواره‌های آتش قادرند با پاسبانی و کنترل سرویسهای مختلف تنها به سرویسهای مجاز تعریف شده در سیاست امنیتی اجازه عبور دهند و بدین ترتیب سیاست امنیتی شبکه را به اجرا در‌آورند. سیاستهای امنیتی نهایتاً به تعدادی قوانین اجرایی تبدیل می‌شوند که دیواره‌های آتش قادر خواهند بود تعداد زیادی از آنها را اجرا کنند. دیواره‌‌‌‌های آتش ممکن است سرویسهای خطرناک و ناامن و را با اعمال محدویت تنها در شبکه داخلی اجازه دهند.

    سیاستهای امنیتی مختلفی قابل اتخاذ هستند. مدیران یک شبکه ممکن است تنها به یک سیستم داخلی اجازه دهند. با دنیای بیرون در ارتباط باشد، در این صورت دیواره آتش تنها ترافیک متعلق به آن سیستم را از خود عبور خواهد داد.

    ذکر این نکته ضروری است که پیاده‌سازیهای مختلف از دیواره‌های آتش تواناییهای متفاوت در به اجرا در آوردن سیاستهای امنیتی دارند و بنابراین با استفاده از برخی از دیواره‌های آتش ممکن است نتوان برخی از سیاستها را به اجرا در آورد.

    یک دیواره آتش می‌‌تواند فعالیتهای مهم را ثبت کند: به این علت که تمام ترافیک از دیواره آتش عبور می‌کند، دیواره آتش یک مکان مناسب برای ثبت مجموعه‌های مختلف از فعالیتهاست. به عنوان تنها نقطه دسترسی، دیواره آتش می‌تواند ثبت کند که چه اتفاقاتی بین شبکه محافظت شده و شبکه بیرونی رخ می‌دهند. با دسته بندی این اطلاعات می‌توان به نتایج خوبی در ارتباط با استفاده از شبکه، تهاجم‌های در حال شکل‌گیری، مزاحمان و متخلفان داخلی و خارجی و.... دست یافت.

    یک دیواره آتش قادر است سطوح مختلفی از امنیت را برای بخشهای مختلف پیاده‌سازی کند: از دیواره‌های آتش گاهی برای جدا نگه داشتن یک بخش از بخشهای دیگر استفاده می‌شود. این حالت زمانی اتفاق می‌افتد که یک بخش از شبکه بیشتر از بخشهای دیگرحساس باشد و نیازمند امنیت بیشتری ‌باشد. بدین ترتیب با استفاده از دیواره‌های آتش می‌توان بخشهای مختلف با سطوح امنیتی مختلف را ایجاد نمود. این مسأله باعث می‌شود بروز مشکلات امنیتی نتواند تمام سرتاسر شبکه را تحت تأثیر قرار دهد و برخی بخشهای مهمتر و حساس‌تر مصون بمانند. دیواره‌های آتش در مجموع قادرند شبکه را در برابر تهدیدات مختلف تا حد زیادی مورد محافظت قرار دهند، اما آنها راه حل امنیتی کامل و بدون عیبی نیستند. برخی از خطرات و مشکلات از کنترل دیواره آتش خارج هستند و برای مقابله با آنها باید از روشهایی مانند ایجاد مکانیزم‌های قوی امنیت فیزیکی، ‍" مصونیت میزبان" و آموزش کاربران و مدیران و... استفاده کرد.

    ناتوانی‌های دیواره‌های آتش
    در ادامه برخی از ناتوانی‌های دیواره‌های آتش را مورد بررسی قرار می‌دهیم:

    یک دیواره آتش نمی‌تواند شبکه و منابع آن را از خرابکاران داخلی محافظت‌کند: دیواره آتش ممکن است بتواند از اینکه اطلاعات مفید سازمان از طریق خط ارتباطی شبکه به بیرون انتقال یابند جلوگیری کند اما هنگامی که این اطلاعات از خط ارتباطی عبور نمی‌کنند نمی‌تواند هیچ‌کاری انجام دهد. کاربری ممکن است با استفاده از یک دیسک، Floppy، CD و یا تعدادی ورقه که آنها را در کیفش قرار می‌دهد اطلاعات حساس سازمان را به بیرون انتقال دهد. در مقابله با این نوع کاربران (که ممکن است اطلاعات داخل را عمداً و یا سهواً از روی غفلت افشا کنند)، دیواره‌های آتش ناتوان هستند و هیچ‌کاری از دستشان ساخته نیست. برخی از افراد داخلی سطوح دسترسی بالایی را در شبکه دارا هستند و مجازند به منابع مختلف در شبکه دسترسی داشته باشند، این افراد قادر خواهند بود سخت افزارها را خراب کنند، نرم افزارها و برنامه‌های مختلف را دچار مشکل‌کنند، به طور ماهرانه‌ای برنامه‌ها را تغییردهند، سطوح دسترسی‌ها را دستکاری کنند و.... واقعیت این است که دیواره‌های آتش در مقابله با این مشکلات کاری نمی‌توانند انجام دهند.

    یک دیواره آتش نمی‌تواند از بروز تمام مشکلات امنیتی جلوگیری‌کند: دیواره آتش برای مقابله با خطرات شناخته شده طراحی شده است. مدیران شبکه با شناختی که از حملات و خطرات مختلف دارند و با تصویب تعدادی قوانین و اجرای آنها توسط دیواره آتش سعی می‌کنند از بروز آنها جلوگیری کنند، اما واقعیت این است که روز به روز حملات و مشکلات امنیتی جدیدی به وجود می‌آیند و دیواره آتش نمی‌تواند به طور خودکار با این خطرات مقابله کند. دیواره آتش نیز مانند تجهیزات دیگر توسط مدیر سیستم پیکربندی می‌شود و پیرو دستوراتی است که مدیر می‌دهد. یک پیکربندی خوب تا حدودی قادر خواهد بود از خطرات جدید نیز جلوگیری‌کند. در این پیکربندی هیچ ترافیکی عبور داده نمی‌شود غیر از ترافیک مربوط به تعداد بسیار اندکی سرویس مطمئن. خرابکاران به طور مرتب راههای جدیدی برای نفوذ و خرابکاری پیدا می‌کنند. آنها یا از سرویسهای مطمئن شناخته شده سوء استفاده می‌کنند ویا مشکلاتی که تا کنون برای کسی رخ نداده (و بنابراین هیچ کس راجع به آنها چیزی نمی‌داند و به همین دلیل در هیچ دیواره آتشی در نظر گرفته نشده) را به کار می‌بندند. یک دیواره آتش را نمی‌توان یک بار پیکربندی کرد و انتظار داشت برای همیشه شبکه را از هر خطری مورد محافظت قرار دهد.

    یک دیواره آتش معمولاً نمی‌تواند از ورود ویروسها جلوگیری کند: اغلب دیواره‌های آتش بخشهای مربوط به آدرس مبدأ و آدرس مقصد و شماره پورت مبدأ ومقصد شبکه‌های ورودی را مورد بازرسی قرار می‌دهند و به جزئیات داده توجهی ندارند. پیاده‌سازی بخش تشخیص ویروس و بررسی کامل داده بسته‌ها در دیواره‌‌های آتش زیاد عملی وکارا نیست. انواع بسیار زیادی از ویروسها وجود دارند و روشهای زیادی برای آنکه ویروس خودش را در داخل داده مخفی‌کند وجود دارد. تشخیص ویروس (Virus Detection) در یک بسته تصادفی از داده‌ای که از دیواره آتش عبور می‌کند بسیار مشکل است. برای تشخیص ویروس در بسته‌ها نیازمندیهای زیر وجود دارد:

    - تشخیص این مطلب که بخش داده بسته بخشی از یک برنامه است.

    - مشخص کردن این‌که یک برنامه مجاز چگونه است و چه ویژگیهایی دارد.

    - تشخیص این که تفاوتی بین این برنامه و مدل برنامه‌های بدون مشکل و مجاز وجود دارد و بنابراین برنامه یک ویروس است.

    اغلب دیواره‌های آتش ماشینهایی از انواع مختلف و با فرمتهای اجرایی مختلف را مورد محافظت قرار می‌دهند.

    یک برنامه ممکن است یک برنامه کامپایل شده قابل اجرا و یا یک script باشد. علاوه بر این، بسیاری از برنامه‌ها قبل از اینکه انتقال یابند به شکل یک Package در می‌آیند و به خوبی فشرده سازی می‌شوند. این مسایل باعث می‌شود پیچیدگی مسأله تشخیص ویروسها بالاتر رود و پیاده‌سازی آن مشکل باشد. با این همه باز هم نمی‌توان تمامی منابع دیگر انتقال ویروسها را کنترل کرد. بسیاری از برنامه‌ها ممکن است از طریق مودمهای اشخاصی که به اینترنت متصلند و از دیواره آتش رد نمی شوند download شوند و یا با یک floppy از محل سکونت به شبکه داخلی سازمان انتقال یابند و ... روش عملی تر مقابله با ویروسها استفاد از نرم افزارهای host-base virus protection است. آموزش کاربران و آگاه کردن آنها از خطرات ویروسها نیز می تواند مؤثر باشد.


    تاریخچه

    اگر چه تکنولوژی دیواره‌های آتش جوان است و تازه شکل گرفته اما بسیار سریع رشد کرده و در کمتر از بیست سال تحولات زیادی را پشت سر گذاشته است.

    اولین نسل از دیواره های آتش در حدود سال 1985 بوجود آمدند و " دیواره های آتش پالایشگر بسته" (Packet filter firewalls) نام گرفتند. ایده اصلی آنها از امکانات نرم افزاری گرفته شده بود که متعلق به شرکت Cisco بود و تحت عنوان (IOS (Internetworking Operation system شناخته می شد. اولین مقاله در ارتباط با فرآیند غربال کردن (Screening Process) که توسط این نوع دیواره های آتش مورد استفاده قرار می گرفت در سال 1988 منتشر شد.

    در سال 1989 آزمایشگاه شرکت AT&T برای اولین بار نسل دوم دیواره‌های آتش که در آینده "دیواره‌های آتش سطح مدار" (Circuit level firewalls) لقب گرفتند را بوجود آوردند. در همان سال آنها همچنین اولین مدل عملی (Working Model) از نسل سوم دیواره‌های آتش یعنی "دیواره‌‌‌‌های آتش لایه کاربرد" (Application layer firewalls) پیاده‌سازی کردند اما نه هیچ مقاله‌ای در این ارتباط منتشر شد و نه محصولی بر اساس این مدل به بازار عرضه گشت.

    در اواخر سال 1989 و اوایل دهه 90 تحقیقات مختلف و پراکنده ای در سطح کشور آمریکا بر روی نسل سوم دیواره های آتش انجام شد و بالاخره نتایج این تحقیقات به صورت جداگانه درسال های 1990 و 1991 توسط Gene Spafford از دانشگاه Bill Cheswick,Purdue از لابراتوری Bell شرکت AT&T و Marcus Ranum انتشار یافتند. در سال 1991 تحقیقات Marcus Ranum بیشترین توجه را به خودش معطوف کرد و باعث بوجود آمدن Bastion host هایی که سرویس proxy را اجرا می کردند شد. نتایج این تحقیقات به سرعت در اولین محصول تجاری شکل عینی یافت و به کار گرفته شد. این محصول که SEAL نام داشت توسط شرکت DEC عرضه شد.

    در اواخر سال1991، Bill Cheswick و Steve Bellovin تحقیقاتی را در ارتباط با پالایش کردن بسته‌ ها به صورت پویا (Dynamic) شروع کردند و بر این اساس محصولی داخلی را در لابراتوار Bell پیاده‌سازی کردند که البته هرگز به بیرون عرضه نشد. در سال 1992، Bob Barden و Annette DeSchon در مؤسسه USC’s Information Sience Institute تحقیقاتی را بر روی نسل چهارم دیواره‌های آتش تحت عنوان "دیواره‌های آتش پالایشگر بسته پویا" (Dynamic packet filter firewalls) برای سیستمی با نام Visas به طور جداگانه شروع کردند و در نهایت نرم افزار Chech Point، اولین محصول تجاری بر پایه معماری نسل چهارم دیواره های آتش، در سال 1994 به بازار عرضه شد.

    در سال 1996، Scott Wiegel طرحی را برای نسل پنجم دیوارههای آتش با عنوان Kernel Proxy ارائه داد. دیواره آتش Cisco Centri که درسال 1997 پیاده سازی شد اولین محصول تجاری بر اساس معماری این نسل بود.

    در سال های اخیر نیاز به سیستم های امنیتی که پرسرعت و در عین حال قابل گسترش(Extensible)، قابل نگهداری(Maintainable) و انعطاف پذیر (Flexible) باشند باعث شده است شرکت های فعال در زمینه امنیت در تکاپوی یافتن راه حلهایی مناسب و کاربردی برای پاسخگویی به این نیازها باشند.

    انواع دیواره‌های آتش

    دیواره‌های آتش پالایشگر بسته

    دیواره‌های آتش سطح مدار

    دیواره‌های آتش لایة کاربرد

    دیواره‏های آتش پالایشگر بسته پویا

    دیواره‏‏های آتش Kernel Proxy

    دیواره‌های آتش مخفی

    دیواره‌های آتش توزیع شده

    دیواره‌های آتش شخصی

    دیواره‌های آتش با توسعه‌پذیری بالا

    دیواره‌های آتش نرم‌افزاری.

    دیواره‌های آتش اختصاصی

    دیواره‌های آتش شخصی

    دیواره‌های آتش شخصی (که به آنها desktop firewalls نیز گفته می‌شود) نرم‌افزارهایی هستند که برای محافظت از یک کامپیوتر تنها که به اینترنت متصل است مورد استفاده قرار می‌گیرند. این کامپیوتر ممکن است به طور دائمی (از طریق خطوط Cable modem , DSL) و یا موقت (از طریق ارتباطات Dial-up) به اینترنت متصل باشد. در مقایسه با برنامه های anti-virus دیواره های آتش در background و در سطحی پایین تر اجرا می شوند. دیواره های آتش شخصی با چک کردن جامعیت فایل های سیستم، پالایش ترافیک ورودی و خروجی، اخطار به کاربر در ارتباط با حملات در حال شکل‌گیری و .... سعی می‌کنند کامپیوتر مرتبط با اینترنت را مورد محافظت قرار دهند. در آیندة نزدیک امن‌سازی سیستم‌ها با دیواره‌های آتش شخصی به یکی از استاندارد‌های کامپیوترهای خانگی تبدیل خواهد شد.

    دیواره‌های آتش شخصی مانند دیواره‌های آتش توزیع شده کار می‌کنند به جز چند مورد. در واقع قابلیت‌های دیواره‌های آتش توزیع شده بیشتر از دیواره‌های آتش شخصی است. دیواره‌های آتش شخصی برای محافظت از یک کامپیوتر تنها که به اینترنت متصل است استفاده می‌شود در حالی که دیواره‌های آتش توزیع شده برای محافظت از کامپیوترهای موجود در یک شبکة بزرگ سازمانی طراحی شده‌اند.یک شرکت یا سازمان می تواند با خرید یک distributed firewall solution، کارمندان دور، شبکه‌های محلی سازمان و شبکه‌های گسترده‌اش را مورد محافظت قرار دهد. مدیریت مرکزی، قابلیت logging در یک نقطة مرکزی و ریز‌سازی کنترل دسترسی(Access Control Granularity) ویژگی‌هایی هستند که در دیواره‌های آتش شخصی وجود ندارند. می‌توان گفت دیواره‌های آتش شخصی مستقل و مجزا هستند در حالی که دیواره‌های آتش توزیع شده با یک نقطة مرکزی در ارتباطند و در صحبت با او قادرند اطلاعات سیاست‌های امنیتی را دریافت و اطلاعات ثبت شده و جمع‌‌آوری شده را ارسال کنند (به این علت به دیواره های آتش توزیع شده Firewall agent نیز گفته می شود). از دیواره‌های آتش شخصی عموماً برای کامپیوتر‌های شخصی و خانگی استفاده می‌شود حال آن که دیواره‌های آتش توزیع شده علاوه بر محافظت از کامپیوترهای شخصی و ایستگاه‌های موجود در شبکه قادرند سرویسگرهای مهم و حساس را نیز مورد محافظت قرار دهند. برخی از دیواره‌های آتش توزیع شده را می‌توان به گونه‌ای پیکربندی کرد که کاملاً شفاف عمل کنند. آنها هیچ رابط گرافیکی ندارند و سیاست‌های امنیتی بدون این که کاربر از آنها اطلاعی داشته باشد به دیوارة آتش منتقل می‌شود. بدین ترتیب درگیری کاربر نهایی حذف می‌شود و او نمی‌تواند در سیاست‌های امنیتی مداخله کرده یا دیوارة آتش را غیر فعال کند. این قابلیت عموماً در دیواره‌های آتش شخصی وجود ندارد.

    برخی از دیواره‌های آتش شخصی عبارتند از:

    - ConSeal PC firewall

    - ConSeal Private Desktop

    - SyShield

    - BlackICE Defender

    - ZoneAlarm

    - Norton Internet Security 2000 (firewall & virus protection)

    - Internet Connection Firewall (Windows XP built-in personal firewall)

    آموزش هک نظرات دیگران ( )